#pragma once
#include <QObject>

#include "RsgisPortal.h"

#include "RsGisLibClbLandtoRadi.h"
#include "RsGisLibClbLandtoRadiMultiAdd.h"
#include "RsGisLibClbSpot5toRadi.h"
#include "RsGisLibClbWdView2toRadi.h"
#include "RsGisLibClbTOARefltoRadi.h"
#include "RsGisLibClbRaditoTOARefl.h"
#include "RsGisLibClbLandTherRaditoTherBrt.h"
#include "RsGisLibClbApply6sCoeSinglePara.h"
#include "RsGisLibClbApply6sCoeElevLutPara.h"
#include "RsGisLibClbApply6sCoeElevAotLutPara.h"
#include "RsGisLibClbCalcStandReflSd2010.h"
#include "RsGisLibClbApplySubOffsets.h"
#include "RsGisLibClbApplySubSinOffsets.h"
#include "RsGisLibClbCalIrradianceImgElevLut.h"
#include "RsGisLibClbSatuPixelsMask.h"
#include "RsGisLibClbCalNadImgViewAngle.h"

class RsGisLibCMDCalibration : public QObject
{
	Q_OBJECT
public:
	RsGisLibCMDCalibration(RsgisPortal* Port);
	~RsGisLibCMDCalibration();
	RsgisPortal* ClientPort;

public:
	RsGisLibClbLandtoRadi* rsgisClbLandtoRadi;
	RsGisLibClbLandtoRadiMultiAdd* rsgisClbLandtoRadiMultiAdd;
	RsGisLibClbSpot5toRadi* rsgisClbSpot5toRadi;
	RsGisLibClbWdView2toRadi* rsgisClbWdView2toRadi;
	RsGisLibClbTOARefltoRadi* rsgisClbTOARefltoRadi;
	RsGisLibClbRaditoTOARefl* rsgisClbRaditoTOARefl;
	RsGisLibClbLandTherRaditoTherBrt* rsgisClbLandTherRaditoTherBrt;
	RsGisLibClbApply6sCoeSinglePara* rsgisClbApply6sCoeSinglePara;
	RsGisLibClbApply6sCoeElevLutPara* rsgisClbApply6sCoeElevLutPara;
	RsGisLibClbApply6sCoeElevAotLutPara* rsgisClbApply6sCoeElevAotLutPara;
	RsGisLibClbCalcStandReflSd2010* rsgisClbCalcStandReflSd2010;
	RsGisLibClbApplySubOffsets* rsgisClbApplySubOffsets;
	RsGisLibClbApplySubSinOffsets* rsgisClbApplySubSinOffsets;
	RsGisLibClbCalIrradianceImgElevLut* rsgisClbCalIrradianceImgElevLut;
	RsGisLibClbSatuPixelsMask* rsgisClbSatuPixelsMask;
	RsGisLibClbCalNadImgViewAngle* rsgisClbCalNadImgViewAngle;

public slots:
	void ClbLandtoRadi();
	void ClbLandtoRadiMultiAdd();
	void ClbSpot5toRadi();
	void ClbWdView2toRadi();
	void ClbTOARefltoRadi();
	void ClbRaditoTOARefl();
	void ClbLandTherRaditoTherBrt();
	void ClbApply6sCoeSinglePara();
	void ClbApply6sCoeElevLutPara();
	void ClbApply6sCoeElevAotLutPara();
	void ClbCalcStandReflSd2010();
	void ClbApplySubOffsets();
	void ClbApplySubSinOffsets();
	void ClbCalIrradianceImgElevLut();
	void ClbSatuPixelsMask();
	void ClbCalNadImgViewAngle();
};
